Apache Commons IO হলো একটি জনপ্রিয় লাইব্রেরি যা Java এ Input/Output (IO) কার্যক্রমের জন্য প্রয়োজনীয় বিভিন্ন ইউটিলিটি এবং ফিচার সরবরাহ করে। এটি ফাইল এবং ডিরেক্টরি ম্যানিপুলেশন, স্ট্রিম হ্যান্ডলিং, এবং অন্যান্য IO সম্পর্কিত কাজগুলো আরও সহজ এবং কার্যকরী করে তোলে। Apache Commons IO লাইব্রেরি ব্যবহার করলে Java IO সম্পর্কিত অনেক সাধারণ কার্যক্রম যেমন ফাইল কপি, ডিরেক্টরি ম্যানিপুলেশন, স্ট্রিম রিড এবং রাইট করার কাজ দ্রুত এবং নিরাপদে করা যায়।
এই লেখায়, আমরা Apache Commons IO এর বৈশিষ্ট্য এবং এর প্রয়োজনীয়তা নিয়ে আলোচনা করব।
FileUtils:
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileUtilsExample {
public static void main(String[] args) {
try {
// Copy a file
File sourceFile = new File("source.txt");
File destinationFile = new File("destination.txt");
FileUtils.copyFile(sourceFile, destinationFile);
// Delete a file
File fileToDelete = new File("fileToDelete.txt");
FileUtils.forceDelete(fileToDelete);
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
FileUtils.copyFile()
মেথডটি একটি ফাইল কপি করার জন্য ব্যবহৃত হয়েছে।FileUtils.forceDelete()
মেথডটি একটি ফাইল ডিলিট করার জন্য ব্যবহৃত হয়েছে।IOUtils:
import org.apache.commons.io.IOUtils;
import java.io.*;
public class IOUtilsExample {
public static void main(String[] args) {
try (InputStream inputStream = new FileInputStream("input.txt");
OutputStream outputStream = new FileOutputStream("output.txt")) {
// Copy data from input stream to output stream
IOUtils.copy(inputStream, outputStream);
// Read file content into a String
String content = IOUtils.toString(inputStream, "UTF-8");
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
IOUtils.copy()
মেথডটি ইনপুট স্ট্রিম থেকে আউটপুট স্ট্রিমে ডাটা কপি করার জন্য ব্যবহৃত হয়েছে।IOUtils.toString()
মেথডটি ইনপুট স্ট্রিম থেকে স্ট্রিং আকারে ডাটা পড়তে ব্যবহৃত হয়েছে।FilenameUtils:
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "/path/to/file/example.txt";
// Get file extension
String extension = FilenameUtils.getExtension(filePath);
System.out.println("File extension: " + extension); // Output: txt
// Get base name of the file
String baseName = FilenameUtils.getBaseName(filePath);
System.out.println("Base name: " + baseName); // Output: example
}
}
এখানে:
FilenameUtils.getExtension()
মেথডটি ফাইলের এক্সটেনশন বের করে।FilenameUtils.getBaseName()
মেথডটি ফাইলের বেস নাম বের করে।FileFilter:
import org.apache.commons.io.filefilter.WildcardFileFilter;
import java.io.File;
import java.io.FileFilter;
public class FileFilterExample {
public static void main(String[] args) {
File directory = new File("/path/to/directory");
// Create a file filter to find all .txt files
FileFilter filter = new WildcardFileFilter("*.txt");
// List all .txt files in the directory
File[] txtFiles = directory.listFiles(filter);
for (File file : txtFiles) {
System.out.println(file.getName());
}
}
}
এখানে:
WildcardFileFilter
ব্যবহার করে আমরা .txt
এক্সটেনশনের সব ফাইল ফিল্টার করেছি এবং listFiles()
মেথডের মাধ্যমে ফিল্টার করা ফাইলগুলির তালিকা পেয়েছি।Apache Commons IO লাইব্রেরি Java-তে ফাইল এবং স্ট্রিম সম্পর্কিত কাজগুলোর জন্য অতিরিক্ত টুলস এবং ইউটিলিটি সরবরাহ করে, যা সাধারণ Java IO API এর তুলনায় আরও সহজ এবং কার্যকরী। এর মাধ্যমে ফাইল পরিচালনা, স্ট্রিম ম্যানিপুলেশন এবং পাথ ম্যানিপুলেশন করা সহজ হয়। এখানে কিছু কারণ রয়েছে যা Apache Commons IO এর প্রয়োজনীয়তা প্রতিষ্ঠিত করে:
Apache Commons IO লাইব্রেরি Java-তে ফাইল এবং স্ট্রিম সম্পর্কিত কাজের জন্য প্রয়োজনীয় কার্যকরী টুলস সরবরাহ করে। এর মাধ্যমে আপনি ফাইল কপি, মুভ, ডিলিট, রিড এবং রাইট অপারেশনগুলি সহজে এবং দ্রুত করতে পারেন। FileUtils, IOUtils, FilenameUtils, এবং FileFilter এর মতো ক্লাসগুলি Java-তে ফাইল এবং স্ট্রিম অপারেশনকে সহজ এবং কার্যকরী করে তোলে। এটি Java-তে ফাইল পরিচালনার কাজ দ্রুত এবং নিরাপদ করে তোলে, যা প্রোগ্রামিংয়ের সময় অত্যন্ত প্রয়োজনীয়।
common.read_more